/**
 * created by 小卷毛, 2019-08-29 029
 * Copyright (c) 2019, 416143467@qq.com All Rights Reserved.
 * #                   *********                            #
 * #                  ************                          #
 * #                  *************                         #
 * #                 **  ***********                        #
 * #                ***  ****** *****                       #
 * #                *** *******   ****                      #
 * #               ***  ********** ****                     #
 * #              ****  *********** ****                    #
 * #            *****   ***********  *****                  #
 * #           ******   *** ********   *****                #
 * #           *****   ***   ********   ******              #
 * #          ******   ***  ***********   ******            #
 * #         ******   **** **************  ******           #
 * #        *******  ********************* *******          #
 * #        *******  ******************************         #
 * #       *******  ****** ***************** *******        #
 * #       *******  ****** ****** *********   ******        #
 * #       *******    **  ******   ******     ******        #
 * #       *******        ******    *****     *****         #
 * #        ******        *****     *****     ****          #
 * #         *****        ****      *****     ***           #
 * #          *****       ***        ***      *             #
 * #            **       ****        ****                   #
 */
package com.af.community.smart

import androidx.multidex.MultiDexApplication
import cn.jpush.android.api.JPushInterface
import com.af.community.smart.business.BuildConfig
import com.af.community.smart.utils.OSSHelper
import com.af.community.smart.utils.getVersion
import com.af.community.smart.viewmodel.BaseViewModel
import com.af.community.smart.viewmodel.appModule
import com.baidu.mapapi.CoordType
import com.baidu.mapapi.SDKInitializer
import com.baidu.ocr.ui.util.initAccessToken
import com.jeremyliao.liveeventbus.LiveEventBus
import com.lzg.OkGoHelper
import com.lzy.okgo.utils.OkLogger
import me.jessyan.autosize.AutoSizeConfig
import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.core.context.startKoin
import org.koin.core.logger.Level

/**
 * 项目名称：Smart_Business
 * 创建人：小卷毛
 * 创建时间：2019-08-29 14:20
 */
class Application : MultiDexApplication() {

    override fun onCreate() {
        super.onCreate()

        //屏幕适配
        AutoSizeConfig.getInstance().isCustomFragment = true

        //OkGo初始化
        OkGoHelper.initOkGo(this, "Smart_Business", BuildConfig.LOG_DEBUG)

        //百度地图初始化
        //在使用SDK各组件之前初始化context信息，传入ApplicationContext
        SDKInitializer.initialize(this)
        //自4.3.0起，百度地图SDK所有接口均支持百度坐标和国测局坐标，用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标，默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL)

        //极光推送
        JPushInterface.setDebugMode(BuildConfig.LOG_DEBUG) //设置开启日志,发布时请关闭日志
        JPushInterface.init(this@Application)              //初始化 JPush

        //koin初始化
        startKoin {
            androidLogger(Level.INFO)
            androidContext(this@Application)
            modules(appModule)
        }

        //OSS存储初始化
        OSSHelper.manager.initOSS(this@Application)

        //LiveDataBus初始化
        LiveEventBus.config()
            .supportBroadcast(this)
            .lifecycleObserverAlwaysActive(true)

        //获取当前版本号
        BaseViewModel.mVersion = getVersion()

        //OCR初始化
        initAccessToken {
            onResult { OkLogger.i("OCR初始化成功!") }
        }
    }

}